package com.wr.online.test.util;




import com.sun.mail.util.MailSSLSocketFactory;

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import java.security.GeneralSecurityException;
import java.util.Properties;
import java.util.UUID;

@SuppressWarnings("all")
public class MailUtil {
    public static void sendMsg(String email,Integer code) throws GeneralSecurityException, MessagingException {
        Properties properties=new Properties();
        //1.2 设置邮件服务器（这里使用了QQ邮箱）
        properties.setProperty("mail.host","smtp.qq.com");
        //1.3 设置发送使用的协议
        properties.setProperty("mail.transport.protocol","smtp");
        //1.4 设置用户是否需要验证
        properties.setProperty("mail.smtp.auth","true");

        //1.5 关于QQ邮箱，还要设置SSL加密，加上以下代码即可
        MailSSLSocketFactory sf=new MailSSLSocketFactory();
        sf.setTrustAllHosts(true);
        properties.put("mail.smtp.ssl.enable","true");
        properties.put("mail.smtp.ssl.socketFactory",sf);

        //2 连接服务器
        //2.1 创建session会话对象
        //fhekpdurcpsubbdd 校准码

        Session session=Session.getDefaultInstance(properties, new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication("804604579@qq.com","fhekpdurcpsubbdd");
            }
        });

        //开启Session的debug模式，这样就可以查看到程序发送Email的运行状态
        session.setDebug(true);
        //2.2 通过session对象获取Transport对象（需要抛出异常）
        Transport transport = session.getTransport();
        //2.3 连接服务器(需要抛出异常)
        transport.connect("smtp.qq.com","804604579@qq.com","fhekpdurcpsubbdd");

        MimeMessage message=new MimeMessage(session);
        //3.2 创建邮件发送人
        message.setFrom(new InternetAddress("804604579@qq.com"));
        //3.3 创建邮件接收人(可以同时发送给很多人（添加抄送）)
        message.setRecipients(Message.RecipientType.TO,new InternetAddress[]{new InternetAddress(email)});
        //3.4 创建邮件主题
        message.setSubject("笔试通知");
        //3.5 创建邮件正文
        message.setContent("进入小程序--进入笔试--输入:<strong style='color:red'>"+code.toString()
                +"</strong><br/><p>注意:请在两天内，用您投简历的微信进入小程序，点击进入笔试，输入id，方能进入考试。考试时长:120分钟，到点自动提交<p>","text/html;charset=utf-8");
        //3.6 发送邮件
        transport.send(message);
        //4 关闭连接
        transport.close();
    }
}
